package com.hanlin.beforejavacodesummary.pojo.otherentry.po;

import lombok.Data;

/**
 * Token校验响应结果实体类
 * 字段与提供的参数完全一致
 */
@Data
public class TokenCheckResponse {


//校验成功
    /**
     * 客户端ID
     */
    private String client_id;

    /**
     * 授权范围
     */
    private String[] scope;

    /**
     * access_token有效期
     */
    private Long exp;

    /**
     * 是否有效
     */
    private Boolean active;

    /**
     * 被授权方
     */
    private String sub;

    /**
     * 授权方
     */
    private String iss;

    /**
     * 当前用户名（仅针对web用户）
     */
    private String user_name;

    /**
     * 上次登陆时间戳
     */
    private Long last_login;

    /**
     * 用户角色
     */
    private String[] pri;

    /**
     * 统一账户名（仅针对web用户）
     */
    private String account;

    /**
     * 统一账户用户ID（仅针对web用户）
     */
    private String obj_id;








//校验失败





    /**
     * 是否成功
     */
    private Boolean succ;
    
    /**
     * 错误码
     */
    private String code;
    
    /**
     * 错误信息
     */
    private String message;
    
    /**
     * 请求路径
     */
    private String path;
    
    /**
     * 校验时间
     */
    private Long timestamp;

    // 默认构造函数
    public TokenCheckResponse() {
    }


    /**
     * 创建成功响应的方法
     */
    public static TokenCheckResponse success() {
        TokenCheckResponse response = new TokenCheckResponse();

        response.setClient_id("客户端Id");
        response.setScope(new String[]{"user"});
        //token 有效期
        response.setExp(1000L);
        response.setActive(true);
        response.setSub("");
        response.setIss("");
        response.setUser_name("admin");
        response.setLast_login(1L);
        response.setPri(new String[]{"user"});
        response.setAccount("admin");
        response.setObj_id("admin");

        return response;
    }

    /**
     * 创建失败响应的方法
     */
    public static TokenCheckResponse error() {
        TokenCheckResponse response = new TokenCheckResponse();
        response.setSucc(false);
        response.setCode("401");
        response.setMessage("失效token");
        response.setPath("/auth-service/oauth/check_token");
        response.setTimestamp(System.currentTimeMillis());
        return response;
    }
}